Skip to content

Latest commit

 

History

History
115 lines (70 loc) · 3.25 KB

File metadata and controls

115 lines (70 loc) · 3.25 KB
title subtitle breadcrumb hideToc
Use Supabase with Ruby on Rails
Learn how to create a Rails project and connect it to your Supabase Postgres database.
Framework Quickstarts
true

<StepHikeCompact.Step step={1}> <StepHikeCompact.Details title="Create a Rails Project">

Make sure your Ruby and Rails versions are up to date, then use `rails new` to scaffold a new Rails project. Use the `-d=postgresql` flag to set it up for Postgres.

Go to the [Rails docs](https://guides.rubyonrails.org/getting_started.html) for more details.

</StepHikeCompact.Details>

<StepHikeCompact.Code>

 ```bash Terminal
 rails new blog -d=postgresql
 ```

</StepHikeCompact.Code>

</StepHikeCompact.Step>

<StepHikeCompact.Step step={2}> <StepHikeCompact.Details title="Set up the Postgres connection details">

Go to [database.new](https://database.new) and create a new Supabase project. Save your database password securely.

When your project is up and running, navigate to the [database settings](https://supabase.com/dashboard/project/_/settings/database) to find the URI connection string. Make sure **Use connection pooling** is checked and **Session mode** is selected. Then copy the URI. Replace the password placeholder with your saved database password.

<Admonition type="tip">

If your network supports IPv6 connections, you can also use the direct connection string. Uncheck **Use connection pooling** and copy the new URI.

</Admonition>

</StepHikeCompact.Details>

<StepHikeCompact.Code>

```bash Terminal
export DATABASE_URL=postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:5432/postgres
```

</StepHikeCompact.Code>

</StepHikeCompact.Step>

<StepHikeCompact.Step step={3}> <StepHikeCompact.Details title="Create and run a database migration">

Rails includes Active Record as the ORM as well as database migration tooling which generates the SQL migration files for you.

Create an example `Article` model and generate the migration files.

</StepHikeCompact.Details>

<StepHikeCompact.Code>

```bash Terminal
bin/rails generate model Article title:string body:text
bin/rails db:migrate
```

</StepHikeCompact.Code>

</StepHikeCompact.Step>

<StepHikeCompact.Step step={4}> <StepHikeCompact.Details title="Use the Model to interact with the database">

You can use the included Rails console to interact with the database. For example, you can create new entries or list all entries in a Model's table.

</StepHikeCompact.Details>

<StepHikeCompact.Code>

  ```bash Terminal
  bin/rails console
  ```

  ```rb irb
  article = Article.new(title: "Hello Rails", body: "I am on Rails!")
  article.save # Saves the entry to the database

  Article.all
  ```

</StepHikeCompact.Code>

</StepHikeCompact.Step>

<StepHikeCompact.Step step={5}> <StepHikeCompact.Details title="Start the app">

Run the development server. Go to http://127.0.0.1:3000 in a browser to see your application running.

</StepHikeCompact.Details>

<StepHikeCompact.Code>

  ```bash Terminal
  bin/rails server
  ```

</StepHikeCompact.Code>

</StepHikeCompact.Step>